package list;

import java.util.*;

/**
 * list集合练习
 * list接口提供了一套通过下标操作元素的方法*/
public class ListDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
      //  List<String> list = new LinkedList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println(list);

        //List接口方法
        /**
         * E get(int index);
         * 获取当前集合中指定下标对应的元素*/
        String str = list.get(2);
        System.out.println(str);
        System.out.println("------------------------");

        /**
         * set(指定位置，给定元素);
         * set(int index,E e)
         * set();将给定的元素设置到指定位置处，原有元素会被替换并被返回给调用方
         * */
        String num = list.set(2,"six");
        System.out.println(list);
        System.out.println(num); //返回被替换的three

        /**
         * COllections.reverse(List list);
         * 反转List集合
         * */
        Collections.reverse(list); //反转集合
        System.out.println("反转后："+list);

        /**
         * void add(index, E e)
         * 重载的add方法，将给定元素e添加到指定位置处，相当于插入操作
         * */
        list.add(3,"three");
        System.out.println(list);

        /**
         * remove(int index);
         * 重载remove方法，根据下标删除元素
         * */
         list.remove(2);
        System.out.println(list);



        //用三种方式对当前集合list遍历
        for (int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }

        for (String str1: list){
            System.out.println(str1);
        }

        Iterator<String> it = list.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

    }
}
